iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0

Day 23 提到原本 build.gradle(Project: 專案名稱) 檔案使用的 org.jetbrains.kotlin.android 版本是 1.7.0,可以先嘗試提升至 1.8.0。

但提升至 1.8.0 後,又出現一則錯誤訊息。

https://ithelp.ithome.com.tw/upload/images/20231007/20151956IVvSXzBNz4.png

Task :app:kaptGenerateStubsDevDebugKotlin FAILED
e: This version (1.2.0) of the Compose Compiler requires Kotlin version 1.7.0 but you appear to be using Kotlin version 1.8.0 which is not known to be compatible. Please fix your configuration (or suppressKotlinVersionCompatibilityCheck but don't say I didn't warn you!).

原來,為了套用 Material 3 的一些功能,我有在這個專案的 build.gradle(Module :app) 檔案 buildFeatures {} 啟用 compose = true

在指定 Compose Compiler 依附元件 (Extension) 版本時,使用了較低的 kotlinCompilerExtensionVersion = "1.2.0" 版本號。

這時,我們需要參考官方文件提供的相容性清單,來調整 kotlinCompilerExtensionVersion 版本號。

build.gradle(Module :app) 檔案

buildFeatures {
        ...
        // Material 3
        compose = true
    }

    composeOptions {
        // kotlinCompilerExtensionVersion = "1.2.0"
        kotlinCompilerExtensionVersion = "1.4.0"
    }
}
Compose Compiler 版 相容的 Kotlin 版本
1.4.0 1.8.0
... ...
1.2.0 1.7.0

因為我把 org.jetbrains.kotlin.android 版本提升至 1.8.0。所以在啟用 compose = true 的情形下,我需要在 kotlinCompilerExtensionVersion 指定對應的 1.4.0 版本號。

再次重新構建看看,一切都很順利的構建完成了。

資料來源
Google for Developers - Compose 對應 Kotlin 的相容性清單
stackoverflow - This version (1.1.1) of the Compose Compiler requires Kotlin version 1.6.10 but you appear to be using Kotlin version 1.5.31


上一篇
[Day 23] 依賴項衝突的場景
下一篇
[Day 25] 查詢依賴項版本紀錄
系列文
[Android] 怎麼蓋地基?論 build.gradle 與它的快樂夥伴們30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言